<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
    <script src="d3.js"></script>
    <script>
        const svg = d3.select('body').append('svg');
        svg.attr('width',800);
        svg.attr('height',600);
        svg.style('border','2px solid #ccc');
        
        
        // svg.append('rect')
        //     .attr('transform','translate(400,300) rotate(0)')
        //     .attr('x',-50)
        //     .attr('y',-50)
        //     .attr('width',100)
        //     .attr('height',100)
        //     .attr('fill','red')
        //     .transition()
        //     .duration(2000)
        //     .attr('transform','translate(400,300),rotate(90)')

            
        // function myInterpolate(a,b){
        //     return function (t){
        //         return a + Math.abs(b-a) * t ;
        //     }
        // }

        // svg.append('circle')
        //     .attr('cx',50)
        //     .attr('cy',100)
        //     .attr('r',10)
        //     .attr('fill','red')
        //     .transition()
        //     .duration(2000)
        //     .ease(d3.easeLinear)
        //     .attrTween('cx',()=>myInterpolate(50,750))


        // svg.append('rect')
        //     .attr('x',100)
        //     .attr('y',100)
        //     .attr('width',200)
        //     .attr('height',200)
        //     .attr('fill','red')
        //     .transition()
        //     .duration(2000)
        //     .attr('fill','blue')



        // svg.append('rect')
        //     .attr('x',400)
        //     .attr('y',100)
        //     .attr('width',200)
        //     .attr('height',200)
        //     .attr('fill','red')
        //     .transition()
        //     .duration(2000)
        //     .attrTween('fill',()=>d3.interpolateHsl("red",'blue'))

        var width = 400;
        var height = 200;

        var xScale = d3.scaleLinear()
        .domain([0, 100])
        .range([0, width]);

        var xAxis = d3.axisBottom(xScale);


        var brush = d3.brushX()
        .extent([[0, 0], [width, height]])
        .on("brush", brushed);

        svg.append("g")
        .attr("class", "x-axis")
        .attr("transform", "translate(0," + (height - 20) + ")")
        .call(xAxis);

        svg.append("g")
        .attr("class", "brush")
        .call(brush)
       

        function brushed(event) {
            var selection = event.selection;
            console.log(event.mode );
            var selectedRange = selection.map(xScale.invert);
            console.log("Selected range: ", selectedRange);
        }


    </script>
</body>
</html>